package com.cy;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

/**
 * 定义Feign接口，通过此接口中的方法，实现远程过程调用
 * 注意：此接口中，只定义访问的url信息，不做具体访问实现
 * （由底层实现，在系统初始化时创建接口实现类，然后在类中做具体访问实现）
 *
 * @ FeignClient 注解描述的接口，为远程服务调用接口，注解中name（value）属性的值为
 * 远程调用的服务名
 *
 * 属性contextId：在不同的接口可以有同一个名称
 */
@FeignClient(name = "nacos-provider",contextId = "ConsumerFeignApi-A")
// @RestController //表示该接口服务于controller，现在openfeign已加入spring，可以不写该注解
public interface ConsumerFeignApi {
    /**
     *这个方法表示向/provider/echo/{msg}这个地址发起 RPC远程过程调用
     * 前提是远端需要有对应的服务
     */
    @GetMapping("/provider/echo/{msg}")
    public String echoMsg(@PathVariable String msg);
}

@FeignClient(name = "nacos-provider",contextId = "ConsumerFeignApi-B")
// @RestController //表示该接口服务于controller，现在openfeign已加入spring，可以不写该注解
interface ConsumerFeignApi2 {
    /**
     *这个方法表示向/provider/echo/{msg}这个地址发起 RPC远程过程调用
     * 前提是远端需要有对应的服务
     */
    @GetMapping("/provider/echo/{msg}")
    public String echoMsg(@PathVariable String msg);
}